<?php
/**
 * Created by PhpStorm.
 * User: 33kuai
 * Date: 2020/2/4
 * Time: 21:05
 */

namespace frontend\modules\demo\controllers;


use yii\web\Controller;
use Yii;
class SessionController extends Controller
{

    //可使用如下代码发送 cookie 到终端用户： 手机端有用
    public function actionSendCookie(){


// 从 "response" 组件中获取 cookie 集合(yii\web\CookieCollection)
        $cookies = Yii::$app->response->cookies;

// 在要发送的响应中添加一个新的 cookie
        $cookies->add(new \yii\web\Cookie([
            'name' => 'language',
            'value' => 'zh-CN',
        ]));

// 删除一个 cookie
        $cookies->remove('language');
// 等同于以下删除代码
        unset($cookies['language']);

    }

    public function actionCookie(){

        $cookies = Yii::$app->request->cookies;
//
//// 获取名为 "language" cookie 的值，如果不存在，返回默认值 "en"
//        $language = $cookies->getValue('language', 'en');
//
//// 另一种方式获取名为 "language" cookie 的值
//        if (($cookie = $cookies->get('language')) !== null) {
//            $language = $cookie->value;
//        }
//
//// 可将 $cookies 当作数组使用
//        if (isset($cookies['language'])) {
//            $language = $cookies['language']->value;
//        }
//
//// 判断是否存在名为 "language" 的 cookie
//        if ($cookies->has('language')) ...
//if (isset($cookies['language'])) ...
    }

    public function actionFlash(){


//        echo Alert::widget([
//            'options' => ['class' => 'alert-info'],
//            'body' => Yii::$app->session->getFlash('postDeleted'),
//        ]);
        $session = Yii::$app->session;

// 请求 #1
// 在名称为"alerts"的flash信息增加数据
        $session->addFlash('alerts', 'You have successfully deleted your post.');
        $session->addFlash('alerts', 'You have successfully added a new friend.');
        $session->addFlash('alerts', 'You are promoted.');
    }

    public function actionIndex(){


        $session = Yii::$app->session;

// 检查session是否开启
        if ($session->isActive){





//// 获取session中的变量值，以下用法是相同的：
//            $language = $session->get('language');
//            $language = $session['language'];
//            $language = isset($_SESSION['language']) ? $_SESSION['language'] : null;
//
//// 设置一个session变量，以下用法是相同的：
//            $session->set('language', 'en-US');
//            $session['language'] = 'en-US';
//            $_SESSION['language'] = 'en-US';
//
//// 删除一个session变量，以下用法是相同的：
//            $session->remove('language');
//            unset($session['language']);
//            unset($_SESSION['language']);
//
//// 检查session变量是否已存在，以下用法是相同的：
//            if ($session->has('language')) ...
//if (isset($session['language']))
//if (isset($_SESSION['language']))
//
//// 遍历所有session变量，以下用法是相同的：
//foreach ($session as $name => $value)
//foreach ($_SESSION as $name => $value)



        }

// 开启session
$session->open();

// 关闭session
$session->close();

// 销毁session中所有已注册的数据
$session->destroy();

    }


}